参考知识点:01.5 精通自定义 View 之绘图基础——Canvas
一、原理
利用 clip 系列函数,通过与 Rect、Path、Region 取交、并、差等集合运算来获得最新的画布形状。此处只需要裁处圆形和圆角矩形,使用 Path 类构建即可,并用 clipPath 裁剪画布。
二、步骤
1. 初始化
|
|
在使用 clip 系列函数时,要禁用硬件加速功能。然后利用 BitmapFactory.decodeResource() 函数从本地 res 文件夹中提取一个 Bitmap 文件。接着根据位图文件的大小,构造一条与图像大小相同的圆形路径。
2. 绘制圆形图像
在绘图时,先将画布裁剪成圆形,再将位图画上去。
4. 绘制圆角图像
|
|
三、优化
对上述代码可以进行以下几个方面优化:
- 参数可配置:圆形与圆角矩形切换、圆角大小、图片资源等。
- 图片缩放至控件大小。
由于 Android 提供的 ImageView 已经处理好了各种缩放问题,我们可以在它的基础上添加一个显示圆角圆形的功能。详见博客:圆角圆形ImageView。